package org.come.until;

import org.come.Frame.ZhuFrame;

public class JmSum {
	/**z->m*/
	public static long ZM(long V){

		V+=1341;
		boolean is=V<0;if (is) {V=-V;}
		int s=Util.random.nextInt(9)+1;
		int w=0;
		long zhi=s;
		if (V!=0) {w=(int) Math.log10(V);}
		if (s>>2==0) {
			s+=3;
			if (s==3) {s=1;}
			else if (s==10){s=5;}
			if (w!=0) {s%=w;}else {s=0;}
			int yzs=(int) ((V+4)%10);
			for (int i=w;i>=0;i--) {
				zhi*=10;zhi+=V%10;
				if (s==i) {zhi*=10;zhi+=yzs;}
				V/=10;
			}
		}else if (s>>2==1) {
			s+=3;
			if (s==3) {s=1;}
			else if (s==10){s=5;}
			if (w!=0) {s%=w;}else {s=0;}
			int yzs=0;
			if (V>=10) {yzs=(int)(((V/10)+2)%10);}
			else {yzs=(int)((V+2)%10);}
			for (int i=w;i>=0;i--) {
				zhi*=10;zhi+=V%10;
				if (s==i) {zhi*=10;zhi+=yzs;}
				V/=10;
			}
		}else if (s>>2==2) {
			s+=3;
			if (s==3) {s=1;}
			else if (s==10){s=5;}
			if (w!=0) {s%=w;}else {s=0;}
			int yzs=(int) ((V+1)%10);
			for (int i=w;i>=0;i--) {
				zhi*=10;zhi+=V%10;
				if (s==i) {zhi*=10;zhi+=yzs;}
				V/=10;
			}
		}
		if (is) {zhi=-zhi;}
		return zhi;
	}
	/**m->z*/
    public static long MZ(long V){
    	if (V==0) {return 0;}
    	boolean is=V<0;
    	if (is) {V=-V;}
    	long zhi=0;
    	int w=(int) Math.log10(V);
    	int s=(int) (V/(long)Math.pow(10,w));
    	w-=2;
    	if (s>>2==0) {
    		s+=3;
			if (s==3) {s=1;}
			else if (s==10){s=5;}
			if (w!=0) {s%=w;}else {s=0;}w++;
			int yzs=0;
			int yzv=0;
			for (int i=0;i<=w;i++) {
				if (s==i) {yzs=(int) (V%10);yzs-=4;if (yzs<0){yzs+=10;}}
				else {if (i==w) {yzv=(int) (V%10);}zhi*=10;zhi+=V%10;}
			    V/=10;
			}
			if (yzs!=yzv) {xiugaiqi();return 0;}
    	}else if (s>>2==1) {
			s+=3;
			if (s==3) {s=1;}
			else if (s==10){s=5;}
			if (w!=0) {s%=w;}else {s=0;}w++;
			int yzs=0;
			int yzv=0;
			for (int i=0;i<=w;i++) {
				if (s==i) {yzs=(int) (V%10);yzs-=2;if (yzs<0){yzs+=10;}}
				else {
					if (w>=2) {if (i==w-1) {yzv=(int) (V%10);}}
					else {if (i==w) {yzv=(int) (V%10);}}
					zhi*=10;zhi+=V%10;
				}
			    V/=10;
			}
			if (yzs!=yzv) {xiugaiqi();return 0;}
    	}else if (s>>2==2) {
    		s+=3;
			if (s==3) {s=1;}
			else if (s==10){s=5;}
			if (w!=0) {s%=w;}else {s=0;}w++;
			int yzs=0;
			int yzv=0;
			for (int i=0;i<=w;i++) {
				if (s==i) {yzs=(int) (V%10);yzs-=1;if (yzs<0){yzs+=10;}}
				else {if (i==w) {yzv=(int) (V%10);}zhi*=10;zhi+=V%10;}
			    V/=10;
			}
			if (yzs!=yzv) {xiugaiqi();return 0;}
    	}
    	if (is) {zhi=-zhi;}
		zhi-=1341;
    	return zhi;
	}
    /**疑似触发修改器处理*/
    public static void xiugaiqi(){
//    	new Thread(() -> {
//			try {
//				ZhuFrame.getZhuJpanel().addPrompt2("系统检测到有非法进程,3秒后退出游戏");
//			} catch (Exception e) {
//				// TODO: handle exception
//			}
//			try {
//				Thread.sleep(3000);
//				System.exit(0);
//			} catch (Exception e) {
//				// TODO: handle exception
//			}
//		}).start();
    }
}
